//
// 现已有写好的代码，因此不重复造了
// 代码改自《OpenCV4快速入门》 myMatchTemplate.cpp
// 方差匹配方法：
// 匹配度越高，值越接近于0。
// 归一化方差匹配方法：完全匹配结果为0。
// 相关性匹配方法：完全匹配会得到很大值，不匹配会得到一个很小值或0。
// 归一化的互相关匹配方法：完全匹配会得到1， 完全不匹配会得到0。
// https://blog.csdn.net/qq_42791845/article/details/103700503
//
// 仅用作桂林电子科技大学2023赛季Evolution战队视觉组培训使用
//
#include <opencv2\opencv.hpp>

int cwaecwae() {
    cv::Mat img = cv::imread("../desktop.png");
    cv::Mat templ = cv::imread("../icon.png");
    if (img.empty() || templ.empty()) // 判断图像读取是否成功
    {
        return -1;
    }
    cv::Mat result;
    cv::matchTemplate(img, templ, result, cv::TM_CCOEFF_NORMED);//模板匹配
    double maxVal, minVal;
    cv::Point minLoc, maxLoc;
    //寻找匹配结果中的最大值和最小值以及坐标位置
    cv::minMaxLoc(result, &minVal, &maxVal, &minLoc, &maxLoc);
    //绘制最佳匹配区域
    cv::rectangle(img, cv::Rect(maxLoc.x, maxLoc.y, templ.cols, templ.rows), cv::Scalar(0, 0, 255), 2);

    cv::namedWindow("origin", cv::WINDOW_NORMAL);

    cv::imshow("origin", img);
    cv::imshow("tmp", templ);

    //cv::imwrite("../matchTemplate.png", img);
    cv::waitKey(0);
    return 0;
}